package cn.huiyunche.base.service.interfaces;

import cn.huiyunche.base.service.enums.BStowageModelEnum;
import cn.huiyunche.base.service.model.BStowageModel;
import cn.huiyunche.base.service.model.BStowageVehicle;

import java.util.List;

/**
 * @ClassName: BStowageVehicleService
 * @Description: 车型配载
 * @author: Aaron
 * @date: 2016年9月23日 上午9:45:23
 */
public interface BStowageVehicleService {

    /**
     * @param modelEnum       模型枚举
     * @param vehicleClassIds 车型分类id
     * @param vehicleNum      车型数
     * @Title: computeSuitableStowage
     * @Description: 根据各车型数量计算合适的配置模型
     * @return: BStowageModel
     */
    BStowageModel computeSuitableStowage(BStowageModelEnum modelEnum, List<Long> vehicleClassIds, List<Integer> vehicleNum);

    /**
     * @param modelEnum 模型枚举
     * @Title: getAvailable
     * @Description: 查询可用的配置模型
     * @return: BStowageModel
     */
    BStowageModel getAvailable(BStowageModelEnum modelEnum);

    /**
     * @param id 配置模型主键
     * @Title: getById
     * @Description: 根据主键查询配置模型
     * @return: BStowageModel
     */
    BStowageModel getById(Long id);

    /**
     * @param vehicleClassIds
     * @return
     * @Title: getListByVehicleClassIds
     * @Description: 根据车型分类id获取车型装载系数
     * @return: List<BStowageVehicle>
     */
    List<BStowageVehicle> getListByVehicleClassIds(List<Long> vehicleClassIds);
}
